home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…rary 8 (Internal Edition) / Apple R&P Lib Internal v8.0.iso / 5-Fonts & Software / Applications / Adobe Illustrator® 3.0 / DrawOver 3.0 / DrawOver 3.0.rsrc / WSTR_257_ProcSet NoPat < prev    next >
Text File  |  1990-06-24  |  19KB  |  1,161 lines

  1. K=%%BeginProcSet:Adobe_Illustrator_2.0d7 0 0
  2. % Adobe Illustrator (TM) Prolog
  3. % Version 2.0d7
  4. % Copyright (C) 1987,1988
  5. % Adobe Systems Incorporated
  6. % All Rights Reserved
  7. /Adobe_Illustrator_2.0d7 dup 120 dict def load begin
  8. /self currentdict def
  9. % configuration
  10. /strokedecompose true def
  11. % definition operators
  12. /bdef                % key value bdef -
  13.     {
  14.     bind def
  15.     } bind def
  16. /ddef                % key value ddef -
  17.     {
  18.     self begin def end
  19.     } bdef
  20. /ldef                % key literal ldef -
  21.     {
  22.     load def
  23.     } bdef
  24. /gdef                % key dict key gdef -
  25.     {
  26.     get def
  27.     } bdef
  28. /bput                % dict key value bdef -
  29.     {
  30.     bind put
  31.     } bdef
  32. /lput                % dict key key lput -
  33.     {
  34.     load put
  35.     } bdef
  36. /xput                % key value literal xput -
  37.     {
  38.     dup load dup length exch maxlength eq
  39.         {
  40.         dup dup load dup
  41.         length 2 mul dict copy def
  42.         } if
  43.     load begin def end
  44.     } bdef
  45. /_                    % - _ null
  46.     /null ldef
  47. /.                    % - . -
  48.     {} bdef
  49. % error operators
  50. errordict
  51. /nocurrentpoint        % operator nocurrentpoint -
  52.     {
  53.     pop
  54.     stop
  55.     } bput
  56. errordict
  57. /invalidaccess        % operator invalidaccess -
  58.     {
  59.     pop
  60.     stop
  61.     } bput
  62. /_limitcheck
  63.     errordict /limitcheck gdef
  64. % marking operators
  65. /fill                % - fill -
  66.     /fill ldef
  67. /stroke                % - stroke -
  68.     /stroke ldef
  69. /ashowfill            % ax ay string ashowfill -
  70.     /ashow ldef
  71. /ashowstroke        % ax ay string matrix ashowstroke -
  72. /ashowstroke where
  73.     {
  74.     pop
  75.     /ashowstroke ldef
  76.     }
  77.     {
  78.     {
  79.     4 1 roll
  80.     (0) exch
  81.         {
  82.         2 copy 0 exch put pop
  83.         gsave
  84.         dup false charpath
  85.         currentpoint
  86.         5 index setmatrix
  87.         stroke
  88.         grestore
  89.         moveto
  90.         3 copy pop rmoveto
  91.         } forall
  92.     pop pop pop pop
  93.     } bdef
  94.     } ifelse
  95. /patterndpi            % - patterndpi array
  96.     [
  97.     72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
  98.     0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
  99.     ] def
  100. /patternsetflat        % - patternsetflat -
  101.     {
  102.     patterndpi aload pop add 72 div
  103.     currentflat 
  104.     mul setflat
  105.     } bdef
  106. /patternclip        % - patternclip -
  107.     {
  108.     errordict /limitcheck {pop stop} put
  109.     {
  110.     clip
  111.     } stopped
  112.         {
  113.         errordict /limitcheck /_limitcheck lput
  114.         patternsetflat
  115.         clip
  116.         }
  117.         {
  118.         errordict /limitcheck /_limitcheck lput
  119.         } ifelse
  120.     } bdef
  121. /patternstrokepath    % - patternstrokepath -
  122.     {
  123.     errordict /limitcheck {pop stop} put
  124.     {
  125.     strokepath
  126.     } stopped
  127.         {
  128.         errordict /limitcheck /_limitcheck lput
  129.         patternsetflat
  130.         strokepath
  131.         }
  132.         {
  133.         errordict /limitcheck /_limitcheck lput
  134.         } ifelse
  135.     } bdef
  136. /definepattern        % width height matrix proc key cache uniform definepattern font
  137. /definepattern where
  138.     {
  139.     pop
  140.     /definepattern ldef
  141.     }
  142.     {
  143.     /patternscale    % - patternscale sx sy
  144.         {
  145.         uniform
  146.             {
  147.             1 1
  148.             }
  149.             {
  150.             width 0 dtransform
  151.             dup mul exch dup mul add sqrt dup 1 add exch div
  152.             0 height dtransform
  153.             dup mul exch dup mul add sqrt dup 1 add exch div
  154.             } ifelse
  155.         } bdef
  156.     {
  157.     7 dict begin
  158.     /FontDict 10 dict def
  159.     FontDict begin
  160.     /uniform exch def
  161.     /cache exch def
  162.     /key exch def
  163.     /proc exch cvx def
  164.     /mtx exch matrix invertmatrix def
  165.     /height exch def
  166.     /width exch def
  167.     /ctm matrix currentmatrix def
  168.     /ptm matrix def
  169.     /str 32 string def
  170.     end
  171.     /FontBBox [0 0 0 0] def
  172.     /FontMatrix FontDict /mtx get matrix copy def
  173.     /Encoding StandardEncoding def
  174.     /FontType 3 def
  175.     /BuildChar
  176.         {
  177.         pop
  178.         begin
  179.         FontDict begin
  180.         width 0 cache
  181.             {
  182.             0 0 width height
  183.             patternscale exch 4 -1 roll mul 3 1 roll mul
  184.             setcachedevice
  185.             }
  186.             {
  187.             setcachedevice
  188.             } ifelse
  189.         gsave
  190.         patternscale scale
  191.         proc
  192.         grestore
  193.         end
  194.         end
  195.         } def
  196.     FontDict /key get currentdict definefont
  197.     end
  198.     } bdef
  199.     } ifelse
  200. /patternpath        % font matrix patternpath
  201. /patternpath where
  202.     {
  203.     pop
  204.     /patternpath ldef
  205.     }
  206.     {
  207.     {
  208.     exch dup begin setfont
  209.     FontDict begin
  210.     FontMatrix 4 get 0 ne
  211.     FontMatrix 5 get 0 ne or
  212.         {
  213.         currentfont
  214.         1 0 0 1
  215.         FontMatrix 4 get neg
  216.         FontMatrix 5 get neg
  217.         mtx
  218.         astore
  219.         makefont
  220.         end
  221.         end
  222.         dup begin setfont
  223.         FontDict begin
  224.         }
  225.         {
  226.         mtx identmatrix pop
  227.         } ifelse
  228.     ctm setmatrix
  229.     concat
  230.     mtx mtx invertmatrix concat
  231.     FontMatrix concat
  232.     uniform
  233.         {
  234.         width 0 dtransform round width div exch round width div exch
  235.         0 height dtransform round height div exch height div exch
  236.         0 0 transform round exch round exch
  237.         ptm astore setmatrix
  238.         }
  239.         {
  240.         ptm currentmatrix pop
  241.         } ifelse
  242.     {currentpoint} stopped not
  243.         {
  244.         pop pop
  245.         pathbbox
  246.         height div ceiling height mul 4 1 roll
  247.         width div ceiling width mul 4 1 roll
  248.         height div floor height mul 4 1 roll
  249.         width div floor width mul 4 1 roll
  250.         2 index sub height div ceiling cvi exch
  251.         3 index sub width div ceiling cvi exch
  252.         4 2 roll moveto
  253.         FontMatrix mtx invertmatrix ptm ptm concatmatrix pop
  254.             {
  255.             gsave
  256.             ptm setmatrix
  257.             dup str length idiv {str show} repeat
  258.             dup str length mod str exch 0 exch getinterval show
  259.             grestore
  260.             0 height rmoveto
  261.             } repeat
  262.         pop
  263.         } if
  264.     end
  265.     end
  266.     } bdef
  267.     } ifelse
  268. /patternmatrix        % - patternmatrix matrix
  269.     matrix def
  270. /patternfill        % font patternfill
  271.                     % font matrix patternfill
  272. /patternfill where
  273.     {
  274.     pop
  275.     /patternfill ldef
  276.     }
  277.     {
  278.     {
  279.     dup type /dicttype eq
  280.         {
  281.         patternmatrix
  282.         } if
  283.     gsave
  284.     patternclip
  285.     patternpath
  286.     grestore
  287.     newpath
  288.     } bdef
  289.     } ifelse
  290. /patternstroke        % font patternstroke
  291.                     % font matrix patternstroke
  292. /patternstroke where
  293.     {
  294.     pop
  295.     /patternstroke ldef
  296.     }
  297.     {
  298.     {
  299.     dup type /dicttype eq
  300.         {
  301.         patternmatrix
  302.         } if
  303.     gsave
  304.     patternstrokepath
  305.     true
  306.         {
  307.             {
  308.                 {
  309.                 newpath 
  310.                 moveto
  311.                 }
  312.                 {
  313.                 lineto
  314.                 }
  315.                 {
  316.                 curveto
  317.                 }
  318.                 {
  319.                 closepath
  320.                 2 copy
  321.                 patternfill
  322.                 } pathforall
  323.             pop    pop
  324.             } stopped
  325.                 {
  326.                 pop pop pop pop
  327.                 patternclip
  328.                 patternpath
  329.                 } if
  330.         }
  331.         {
  332.         patternclip
  333.         patternpath
  334.         } ifelse
  335.     grestore
  336.     newpath
  337.     } bdef
  338.     } ifelse
  339. /patternashowfill    % font ax ay string patternashowfill
  340.                     % font matrix ax ay string patternashowfill
  341. /patternashow where
  342.     {
  343.     pop
  344.     /patternashow ldef
  345.     }
  346.     {
  347.     {
  348.     3 index type /dicttype eq
  349.         {
  350.         patternmatrix 4 1 roll
  351.         } if
  352.     (0) exch
  353.         {
  354.         2 copy 0 exch put pop
  355.         gsave
  356.         dup false charpath 
  357.         currentpoint
  358.         6 index 6 index patternfill
  359.         grestore
  360.         moveto
  361.         3 copy pop rmoveto
  362.         } forall
  363.     pop pop pop
  364.     pop pop
  365.     } bdef
  366.     } ifelse
  367. /patternashowstroke    % font ax ay string matrix patternashowstroke
  368.                     % font matrix ax ay string matrix patternashowstroke
  369. /patternashowstroke where
  370.     {
  371.     pop
  372.     /patternashowstroke ldef
  373.     }
  374.     {
  375.     {
  376.     4 index type /dicttype eq
  377.         {
  378.         patternmatrix 5 1 roll
  379.         } if
  380.     4 1 roll
  381.     (0) exch
  382.         {
  383.         2 copy 0 exch put pop
  384.         gsave
  385.         dup false charpath
  386.         currentpoint
  387.         5 index setmatrix
  388.         7 index 7 index patternstroke
  389.         grestore
  390.         moveto
  391.         3 copy pop rmoveto
  392.         } forall
  393.     pop pop pop pop
  394.     pop pop
  395.     } bdef
  396.     } ifelse
  397. % path operators
  398. /fillpath            % - fillpath -
  399.     /. ldef
  400. /strokepath            % - strokepath -
  401.     /strokepath ldef
  402. /ashowpath            % ax ay string ashowpath -
  403. /ashowpath where
  404.     {
  405.     pop
  406.     /ashowpath ldef
  407.     }
  408.     {
  409.     {
  410.     (0) exch
  411.         {
  412.         2 copy 0 exch put pop
  413.         dup false charpath
  414.         3 copy pop rmoveto
  415.         } forall
  416.     pop pop pop
  417.     } bdef
  418.     } ifelse
  419. % path construction operators
  420. /setstrokerounding where
  421.     {
  422.     pop true setstrokerounding
  423.     /c                % x1 y1 x2 y2 x3 y3 c -
  424.         /curveto ldef
  425.     /C                % x1 y1 x2 y2 x3 y3 C -
  426.         /c ldef
  427.     /v                % x2 y2 x3 y3 v -
  428.         {
  429.         currentpoint 6 2 roll curveto
  430.         } bdef
  431.     /V                % x2 y2 x3 y3 V -
  432.         /v ldef
  433.     /y                % x1 y1 x2 y2 y -
  434.         {
  435.         2 copy curveto
  436.         } bdef
  437.     /Y                % x1 y1 x2 y2 Y -
  438.         /y ldef
  439.     /l                % x y l -
  440.         /lineto ldef
  441.     /L                % x y L -
  442.         /l ldef
  443.     /m                % x y m -
  444.         /moveto ldef
  445.     }
  446.     {
  447.     /phaselock        % x y phaselock x y
  448.         {
  449.         transform
  450.         .25 sub round .25 add exch
  451.         .25 sub round .25 add exch
  452.         itransform
  453.         } bdef
  454.     /c                % x1 y1 x2 y2 x3 y3 c -
  455.         {
  456.         phaselock curveto
  457.         } bdef
  458.     /C                % x1 y1 x2 y2 x3 y3 C -
  459.         /c ldef
  460.     /v                % x2 y2 x3 y3 v -
  461.         {
  462.         currentpoint 6 2 roll phaselock curveto
  463.         } bdef
  464.     /V                % x2 y2 x3 y3 V -
  465.         /v ldef
  466.     /y                % x1 y1 x2 y2 y -
  467.         {
  468.         phaselock 2 copy curveto
  469.         } bdef
  470.     /Y                % x1 y1 x2 y2 Y -
  471.         /y ldef
  472.     /l                % x y l -
  473.         {
  474.         phaselock lineto
  475.         } bdef
  476.     /L                % x y L -
  477.         /l ldef
  478.     /m                % x y m -
  479.         {
  480.         phaselock moveto
  481.         } bdef
  482.     } ifelse
  483. % graphic state operators
  484. /d                    % array phase d -
  485.     /setdash ldef
  486. /_currentflat        % - _currentflat flatness
  487.     currentflat def
  488. /i                    % flatness i -
  489.     {
  490.     dup 0 eq
  491.         {
  492.         pop _currentflat
  493.         } if
  494.     setflat
  495.     } bdef
  496. /j                    % linejoin j -
  497.     /setlinejoin ldef
  498. /J                    % linecap J -
  499.     /setlinecap ldef
  500. /M                    % miterlimit M -
  501.     /setmiterlimit ldef
  502. /w                    % linewidth w -
  503.     /setlinewidth ldef
  504. % painting operators
  505. /paintfill            % - paintfill -
  506.     /. ldef
  507. /paintstroke        % - paintstroke -
  508.     /. ldef
  509. /paintashowfill        % ax ay string paintashowfill -
  510.     /. ldef
  511. /paintashowstroke    % ax ay string matrix paintashowstroke -
  512.     /. ldef
  513. % halftone screen operators
  514. /_currentscreen        % - _currentscreen array
  515.     [currentscreen] def
  516. /setscreen            % frequency angle proc setscreen -
  517.     /setscreen ldef
  518. /HalftoneDict 1 dict def
  519. (null) _currentscreen 2 get /HalftoneDict xput
  520. /X                    % name definition X -
  521.     {
  522.     /HalftoneDict xput
  523.     } bdef
  524. /x                    % frequency angle name x -
  525.     {
  526.     HalftoneDict begin load end
  527.     72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
  528.     72 0 dtransform dup mul exch dup mul add sqrt div
  529.     3 index mul 4 1 roll 3 -1 roll pop
  530.     1 index matrix rotate matrix currentmatrix dup concatmatrix
  531.     1 0 2 index dtransform exch atan 4 1 roll 3 -1 roll pop
  532.     dup dup 2 get exch 1 get mul exch dup 0 get exch 3 get mul sub
  533.     0 gt
  534.         {
  535.         dup length 1 add array cvx
  536.         dup 1 4 -1 roll putinterval dup 0 /neg lput
  537.         } if
  538.     setscreen
  539.     } bdef
  540. /A                    % frequency angle name A -
  541.     {
  542.     HalftoneDict begin load end
  543.     setscreen
  544.     } bdef
  545. /D                    % - D -
  546.     {
  547.     _currentscreen aload pop
  548.     setscreen
  549.     } bdef
  550. % path painting operators
  551. /H                    % - H -
  552.     /. ldef
  553. /h                    % - h -
  554.     /closepath ldef
  555. /N                    % - N -
  556.     /newpath ldef
  557. /n                    % - n -
  558.     /N ldef
  559. /F                    % - F -
  560.     {
  561.     paintfill
  562.     } def
  563. /f                    % - f -
  564.     {
  565.     closepath
  566.     F
  567.     } bdef
  568. /S                    % - S -
  569.     {
  570.     paintstroke
  571.     } def
  572. /s                    % - s -
  573.     {
  574.     closepath
  575.     S
  576.     } bdef
  577. /B                    % - B -
  578.     {
  579.     gsave F grestore
  580.     S
  581.     } bdef
  582. /b                    % - b -
  583.     {
  584.     closepath
  585.     B
  586.     } bdef
  587. /W                    % - W -
  588.     /clip ldef
  589. % text painting operators
  590. /_textalign            % - _textalign align
  591.     /_ ldef
  592. /_texttracking        % - _texttracking tracking
  593.     /_ ldef
  594. /_textleading        % - _textleading leading
  595.     /_ ldef
  596. /_textmatrix        % - _textmatrix matrix
  597.     matrix def
  598. /t                    % string t -
  599.     /. ldef
  600. /textalign            % string textalign ax ay string
  601.     {
  602.     newpath _textalign moveto _texttracking exch 0 exch
  603.     } bdef
  604. /textleading        % - textleading -
  605.     {
  606.     0 _textleading neg translate
  607.     } bdef
  608. /astringwidth        % string astringwidth width
  609.     {
  610.     dup stringwidth 
  611.     exch 3 -1 roll
  612.     length 1 sub
  613.     _texttracking mul add exch
  614.     } bdef
  615. /alignments            % - alignments array
  616.     {
  617.     {0 0}
  618.     {dup astringwidth exch neg 2 div exch neg 2 div}
  619.     {dup astringwidth exch neg exch neg}
  620.     } bind cvlit def
  621. /z                    % literal size leading tracking align z -
  622.     {
  623.     alignments exch get
  624.     /_textalign exch ddef
  625.     /_texttracking exch ddef
  626.     /_textleading exch ddef
  627.     exch findfont exch scalefont setfont
  628.     } bdef
  629. /textmatrix            % matrix textmatrix -
  630.     {
  631.     _textmatrix currentmatrix pop
  632.     concat
  633.     } bdef
  634. /I                    % matrix I -
  635.     {
  636.     textmatrix
  637.     /t
  638.         {
  639.         textalign ashowpath
  640.         textleading
  641.         newpath
  642.         } ddef
  643.     } bdef
  644. /o                    % matrix o -
  645.     {
  646.     textmatrix
  647.     /t
  648.         {
  649.         pop
  650.         textleading
  651.         newpath
  652.         } ddef
  653.     } bdef
  654. /e                    % matrix e -
  655.     {
  656.     textmatrix
  657.     /t
  658.         {
  659.         textalign paintashowfill
  660.         textleading
  661.         newpath
  662.         } ddef
  663.     } def
  664. /r                    % matrix r -
  665.     {
  666.     textmatrix
  667.     /t
  668.         {
  669.         textalign _textmatrix paintashowstroke
  670.         textleading
  671.         newpath
  672.         } ddef
  673.     } def
  674. /a                    % matrix a -
  675.     {
  676.     textmatrix
  677.     /t
  678.         {
  679.         dup
  680.         textalign paintashowfill
  681.         textalign _textmatrix paintashowstroke
  682.         textleading
  683.         newpath
  684.         } ddef
  685.     } def
  686. /T                    % - T -
  687.     {
  688.     _textmatrix setmatrix
  689.     } bdef
  690. % font operators
  691. /Z                    % array literal literal Z -
  692.     {
  693.     findfont begin
  694.     currentdict dup length 1 add dict begin
  695.         {
  696.         1 index /FID ne
  697.             {
  698.             def
  699.             }
  700.             {
  701.             pop pop
  702.             } ifelse
  703.         } forall
  704.     /FontName exch def dup length 0 ne
  705.         {
  706.         /Encoding Encoding 256 array copy def
  707.         0 exch
  708.             {
  709.             dup type /nametype eq
  710.                 {
  711.                 Encoding 2 index 2 index put pop
  712.                 1 add
  713.                 }
  714.                 {
  715.                 exch pop
  716.                 } ifelse
  717.             } forall
  718.         } if pop
  719.     currentdict dup end end
  720.     /FontName get exch definefont pop
  721.     } bdef
  722. % group operators
  723. /u                    % - u -
  724.     /. ldef
  725. /U                    % - U -
  726.     /. ldef
  727. /q                    % - q -
  728.     /gsave ldef
  729. /Q                    % - Q -
  730.     /grestore ldef
  731. % color operators
  732. /_grayfill            % - _grayfill gray
  733.     /_ ldef
  734. /_cmykfill            % - _cmykfill array
  735.     4 array def
  736. /_spotfill            % - _spotfill array
  737.     6 array def
  738. /setfillcolor        % - setfillcolor -
  739.     /. ldef
  740. /_graystroke        % - _graystroke gray
  741.     /_ ldef
  742. /_cmykstroke        % - _cmykstroke array
  743.     4 array def
  744. /_spotstroke        % - _spotstroke array
  745.     6 array def
  746. /setstrokecolor        % - setstrokecolor -
  747.     /. ldef
  748. /g                    % gray g -
  749.     {
  750.     /_grayfill exch ddef
  751.     /setfillcolor
  752.         {
  753.         _grayfill setgray
  754.         } ddef
  755.     /paintfill
  756.         {
  757.         setfillcolor
  758.         fill
  759.         } ddef
  760.     /paintashowfill
  761.         {
  762.         setfillcolor
  763.         ashowfill
  764.         } ddef
  765.     } def
  766. /G                    % gray G -
  767.     {
  768.     /_graystroke exch ddef
  769.     /setstrokecolor
  770.         {
  771.         _graystroke setgray
  772.         } ddef
  773.     /paintstroke
  774.         {
  775.         setstrokecolor
  776.         stroke
  777.         } ddef
  778.     /paintashowstroke
  779.         {
  780.         setstrokecolor
  781.         ashowstroke
  782.         } ddef
  783.     } def
  784. /k                    % cyan magenta yellow black k -
  785.     {
  786.     _cmykfill astore pop
  787.     /setfillcolor
  788.         {
  789.         _cmykfill aload pop setcmykcolor
  790.         } ddef
  791.     /paintfill
  792.         {
  793.         setfillcolor
  794.         fill
  795.         } ddef
  796.     /paintashowfill
  797.         {
  798.         setfillcolor
  799.         ashowfill
  800.         } ddef
  801.     } def
  802. /K                    % cyan magenta yellow black K -
  803.     {
  804.     _cmykstroke astore pop
  805.     /setstrokecolor
  806.         {
  807.         _cmykstroke aload pop setcmykcolor
  808.         } ddef
  809.     /paintstroke
  810.         {
  811.         setstrokecolor
  812.         stroke
  813.         } ddef
  814.     /paintashowstroke
  815.         {
  816.         setstrokecolor
  817.         ashowstroke
  818.         } ddef
  819.     } def
  820. /O                    % cyan magenta yellow black tint spot O -
  821.     {
  822.     _spotfill astore pop
  823.     /setfillcolor
  824.         {
  825.         _spotfill aload pop setspotcolor
  826.         } ddef
  827.     /paintfill
  828.         {
  829.         setfillcolor
  830.         fill
  831.         } ddef
  832.     /paintashowfill
  833.         {
  834.         setfillcolor
  835.         ashowfill
  836.         } ddef
  837.     } def
  838. /R                    % cyan magenta yellow black tint spot R -
  839.     {
  840.     _spotstroke astore pop
  841.     /setstrokecolor
  842.         {
  843.         _spotstroke aload pop setspotcolor
  844.         } ddef
  845.     /paintstroke
  846.         {
  847.         setstrokecolor
  848.         stroke
  849.         } ddef
  850.     /paintashowstroke
  851.         {
  852.         setstrokecolor
  853.         ashowstroke
  854.         } ddef
  855.     } def
  856. % pattern operators
  857. /PatternDict 1 dict def
  858. /EDict 10 dict def
  859. /E                    % name llx lly urx ury desc E -
  860.     {
  861.     EDict begin
  862.     /_desc exch def
  863.     /_ury exch def
  864.     /_urx exch def
  865.     /_lly exch def
  866.     /_llx exch def
  867.     /_name exch def
  868.     
  869.     0 2 _desc length 2 sub
  870.         {
  871.         /_index exch def
  872.         /_cache _desc _index get _ ne def
  873.         /_render _desc _index 1 add get cvlit def
  874.         
  875.         _render _ ne
  876.             {
  877.             _urx _llx sub _ury _lly sub [1 0 0 1 0 0] 
  878.                 [
  879.                 /save load
  880.                 _llx neg _lly neg /translate load
  881.                 /newpath load
  882.                 _llx _lly /moveto load
  883.                 _urx _lly /lineto load
  884.                 _urx _ury /lineto load
  885.                 _llx _ury /lineto load
  886.                 /closepath load /clip load
  887.                 /newpath load
  888.                 _cache
  889.                     {
  890.                     PatternColor /begin load
  891.                     } if
  892.                 _render dup type /stringtype eq
  893.                     {
  894.                     cvx
  895.                     }
  896.                     {
  897.                     {exec} /forall load
  898.                     } ifelse
  899.                 _cache
  900.                     {
  901.                     /end load
  902.                     } if
  903.                 /restore load
  904.                 ] cvx
  905.             /_fontname 12 _name length add string def
  906.             _index _fontname cvs pop
  907.             _fontname 12 _name putinterval
  908.             _fontname _cache false definepattern pop
  909.             _desc _index 1 add _fontname put
  910.             } if
  911.         } for
  912.     _name _desc /PatternDict
  913.     end xput
  914.     } bdef
  915. /_patternmatrix        % - _patternmatrix matrix
  916.     matrix def
  917. /_fillmatrix        % - _fillmatrix matrix
  918.     /_ ldef
  919. /_filldesc            % - _filldesc desc
  920.     /_ ldef
  921. /p                    % name px py sx sy a r k ka matrix p -
  922.     {
  923.     /_fillmatrix exch ddef
  924.     dup _patternmatrix rotate _fillmatrix dup concatmatrix pop
  925.     exch dup sin exch cos div 1 0 0 1 0 6 2 roll
  926.     _patternmatrix astore _fillmatrix dup concatmatrix pop
  927.     neg _patternmatrix rotate _fillmatrix dup concatmatrix pop
  928.     dup _ ne
  929.         {
  930.         dup _patternmatrix rotate _fillmatrix dup concatmatrix pop
  931.         1 -1 _patternmatrix scale _fillmatrix dup concatmatrix pop
  932.         neg _patternmatrix rotate _fillmatrix dup concatmatrix pop
  933.         }
  934.         {
  935.         pop
  936.         } ifelse
  937.     _patternmatrix rotate _fillmatrix dup concatmatrix pop
  938.     _patternmatrix scale _fillmatrix dup concatmatrix pop
  939.     _patternmatrix translate _fillmatrix dup concatmatrix pop
  940.     PatternDict exch get /_filldesc exch ddef
  941.     /paintfill
  942.         {
  943.         save
  944.         _filldesc
  945.         0 2 _filldesc length 2 sub
  946.             {
  947.             gsave
  948.             2 copy get dup _ ne
  949.                 {
  950.                 cvx exec setfillcolor
  951.                 }
  952.                 {
  953.                 pop
  954.                 } ifelse
  955.             2 copy 1 add get dup _ ne
  956.                 {
  957.                 findfont _fillmatrix
  958.                 patternfill
  959.                 }
  960.                 {
  961.                 pop
  962.                 fill
  963.                 } ifelse
  964.             grestore
  965.             pop
  966.             } for
  967.         pop
  968.         restore
  969.         newpath
  970.         } ddef
  971.     /paintashowfill
  972.         {
  973.         save
  974.         _filldesc
  975.         0 2 _filldesc length 2 sub
  976.             {
  977.             gsave
  978.             2 copy get dup _ ne
  979.                 {
  980.                 cvx exec setfillcolor
  981.                 }
  982.                 {
  983.                 pop
  984.                 } ifelse
  985.             2 copy 1 add get dup _ ne
  986.                 {
  987.                 findfont _fillmatrix
  988.                 8 copy pop pop pop pop pop patternashowfill
  989.                 }
  990.                 {
  991.                 pop
  992.                 6 copy pop pop pop ashowfill
  993.                 } ifelse
  994.             grestore
  995.             pop
  996.             } for
  997.         pop
  998.         restore
  999.         gsave
  1000.         nulldevice
  1001.         ashowfill
  1002.         currentpoint
  1003.         grestore
  1004.         moveto
  1005.         } ddef
  1006.     } def
  1007. /_strokematrix        % - _strokematrix matrix
  1008.     /_ ldef
  1009. /_strokedesc        % - _strokedesc desc
  1010.     /_ ldef
  1011. /P                    % name px py sx sy a r k ka matrix P -
  1012.     {
  1013.     /_strokematrix exch ddef
  1014.     dup _patternmatrix rotate _strokematrix dup concatmatrix pop
  1015.     exch dup sin exch cos div 1 0 0 1 0 6 2 roll
  1016.     _patternmatrix astore _strokematrix dup concatmatrix pop
  1017.     neg _patternmatrix rotate _strokematrix dup concatmatrix pop
  1018.     dup _ ne
  1019.         {
  1020.         dup _patternmatrix rotate _strokematrix dup concatmatrix pop
  1021.         1 -1 _patternmatrix scale _strokematrix dup concatmatrix pop
  1022.         neg _patternmatrix rotate _strokematrix dup concatmatrix pop
  1023.         }
  1024.         {
  1025.         pop
  1026.         } ifelse
  1027.     _patternmatrix rotate _strokematrix dup concatmatrix pop
  1028.     _patternmatrix scale _strokematrix dup concatmatrix pop
  1029.     _patternmatrix translate _strokematrix dup concatmatrix pop
  1030.     PatternDict exch get /_strokedesc exch ddef
  1031.     /paintstroke
  1032.         {
  1033.         save
  1034.         _strokedesc
  1035.         0 2 _strokedesc length 2 sub
  1036.             {
  1037.             gsave
  1038.             2 copy get dup _ ne
  1039.                 {
  1040.                 cvx exec setstrokecolor
  1041.                 }
  1042.                 {
  1043.                 pop
  1044.                 } ifelse
  1045.             2 copy 1 add get dup _ ne
  1046.                 {
  1047.                 findfont _strokematrix patternstroke
  1048.                 }
  1049.                 {
  1050.                 pop stroke
  1051.                 } ifelse
  1052.             grestore
  1053.             pop
  1054.             } for
  1055.         pop
  1056.         restore
  1057.         newpath
  1058.         } ddef
  1059.     /paintashowstroke
  1060.         {
  1061.         save
  1062.         _strokedesc
  1063.         0 2 _strokedesc length 2 sub
  1064.             {
  1065.             gsave
  1066.             2 copy get dup _ ne
  1067.                 {
  1068.                 cvx exec setstrokecolor
  1069.                 }
  1070.                 {
  1071.                 pop
  1072.                 } ifelse
  1073.             2 copy 1 add get dup _ ne
  1074.                 {
  1075.                 findfont _strokematrix
  1076.                 9 copy pop pop pop pop pop patternashowstroke
  1077.                 }
  1078.                 {
  1079.                 pop
  1080.                 7 copy pop pop pop ashowstroke
  1081.                 } ifelse
  1082.             grestore
  1083.             pop
  1084.             } for
  1085.         pop
  1086.         restore
  1087.         gsave
  1088.         nulldevice
  1089.         pop
  1090.         ashowfill
  1091.         currentpoint
  1092.         grestore
  1093.         moveto
  1094.         } ddef
  1095.     } def
  1096. % script color operators
  1097. /setgray            % gray setgray -
  1098.     /setgray ldef
  1099. /setcmykcolor        % cyan magenta yellow black setcmykcolor -
  1100. /setcmykcolor where
  1101.     {
  1102.     pop
  1103.     /setcmykcolor ldef
  1104.     }
  1105.     {
  1106. /setcmybcolor where
  1107.     {
  1108.     pop
  1109.     /setcmybcolor ldef
  1110.     }
  1111.     {
  1112.     {
  1113.     1 sub 4 1 roll
  1114.     3
  1115.         {
  1116.         3 index add neg dup 0 lt
  1117.             {
  1118.             pop 0
  1119.             } if
  1120.         3 1 roll
  1121.         } repeat
  1122.     setrgbcolor
  1123.     pop
  1124.     } bdef
  1125.     } ifelse
  1126.     } ifelse
  1127. /setspotcolor        % cyan magenta yellow black tint spot setspotcolor -
  1128. /setspotcolor where
  1129.     {
  1130.     pop
  1131.     /setspotcolor ldef
  1132.     }
  1133.     {
  1134.     {
  1135.     pop 5 1 roll
  1136.     4
  1137.         {
  1138.         4 index mul 4 1 roll
  1139.         } repeat
  1140.     setcmykcolor
  1141.     pop
  1142.     } bdef
  1143.     } ifelse
  1144. % pattern color operators
  1145. /PatternColor 3 dict def
  1146. PatternColor begin
  1147. /setgray            % gray setgray -
  1148.     /pop ldef
  1149. /setcmykcolor        % cyan magenta yellow black setcmykcolor -
  1150.     {
  1151.     pop pop pop pop
  1152.     } bdef
  1153. /setspotcolor        % cyan magenta yellow black tint spot setspotcolor -
  1154.     {
  1155.     pop pop pop pop pop pop
  1156.     } bdef
  1157. end                    % PatternColor
  1158. end                    % Adobe_Illustrator_2.0d7
  1159. %%EndProcSet
  1160.  
  1161.